﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Bluyel.Core
{
    public class FactoryMgrBase
    {
        IdFactory _idFactory;

        /// <summary>
        /// Factory to build types.
        /// </summary>
        FactoryTypeBase _factoryType;

        /// <summary>
        /// Factory to build data Values.
        /// </summary>
        FactoryValue _factoryValue;

        /// <summary>
        /// Factory to build data named.
        /// </summary>
        FactoryData _factoryData;

        /// <summary>
        /// Constructor.
        /// </summary>
        public FactoryMgrBase()
        {
            _idFactory = new IdFactory();
            _factoryType = new FactoryTypeBase(_idFactory);
            _factoryValue = new FactoryValue();
            _factoryData = new FactoryData();
        }

        public IdFactory IdFactory
        {
            get { return _idFactory; }
        }

        public FactoryTypeBase FactoryType
        {
            get { return _factoryType; }
        }

        public FactoryValue FactoryValue
        {
            get { return _factoryValue; }
        }

        public FactoryData FactoryData
        {
            get { return _factoryData; }
        }
    }
}
